/*
    Asignatura: Procesadores de lenguajes.
    Practica de labotario numero 10.
    Autores:
                Guillermo Garcia Juanes (Alu3889)
                Jose Antonio Hernandez Gonzalez (Alu3809)
   
   Fichero: MiArbol.java
   Contenido: Definicion propia de un Arbol con atributos especificos
*/
package pl.equipo13.p10.tree;

import org.antlr.runtime.Token;
import org.antlr.runtime.tree.*;


public class MiArbol extends CommonTree {
    
    // Nuevos Atributos
    int linea = 0, columna = 0;
    String nombrefichero = "Raiz";

    // Constructor vacio
    public MiArbol() {
    }
    
    // Constructor a partir de un token
    public MiArbol(Token t) {
        super(t);
        if (t != null) {
            linea = t.getLine();
            columna = t.getCharPositionInLine();
        }
    }
    
    // Constructor a partir de un token
    public MiArbol(Token t, String fich) {
        super(t);
        nombrefichero = fich;
        if (t != null) {
            linea = t.getLine();
            columna = t.getCharPositionInLine();
        }
    }
    
    // Constructor a partir de un arbol
    public MiArbol(CommonTree ct) {
        super(ct);
        if (ct instanceof MiArbol) {
            linea = ((MiArbol)ct).getLinea();
            columna = ((MiArbol)ct).getColumna();
            nombrefichero = ((MiArbol)ct).getNFihero();
        }
    }
        
    // Metodos de actualizacion y acceso
    // del atributo linea
    public void setLinea(int l) { linea = l; }
    public int getLinea() { return linea; }
    public void setColumna(int l) { columna = l; }
    public int getColumna() { return columna; }
    public void setNFichero(String file) { nombrefichero = file; }
    public String getNFihero() { return nombrefichero; }
    
    // Redefinicion del metodo toString
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("");
        String textCT = super.toString();
        sb.append(textCT);
        sb.append("(linea: ");
        sb.append(linea);
        sb.append(", columna: ");
        sb.append(columna);
        sb.append(", fichero: ");
        sb.append(nombrefichero);
        sb.append(")");
        return sb.toString();
    }
}